/**
 * Sonar iOS Client Application
 * Extension for Sonar, open source software quality management tool.
 * Copyright (C) 2011 Maris Plots
 * mailto: maris.plots@gmail.com
 *
 * Sonar iOS Client Application is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * Sonar iOS Client Application is distributed in the hope that it will be 
 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with Sonar iOS Client Application; if not, write to the Free 
 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
 */

#import "AbstractRESTServiceHandler.h"

@class Resource;

typedef enum{
    GetResourcesServiceScopeNone = 0,
    GetResourcesServiceScopePRJ = 1 << 0,
    GetResourcesServiceScopeDIR = 1 << 1,
    GetResourcesServiceScopeFIL = 1 << 2
}GetResourcesServiceScope;

typedef enum{
    GetResourcesServiceScopeQualifierNone = 0,
    GetResourcesServiceScopeQualifierTRK = 1 << 0,
    GetResourcesServiceScopeQualifierBRC = 1 << 1,
    GetResourcesServiceScopeQualifierCLA = 1 << 2,
    GetResourcesServiceScopeQualifierUTS = 1 << 3,
    GetResourcesServiceScopeQualifierDIR = 1 << 4,
    GetResourcesServiceScopeQualifierFIL = 1 << 5,
}GetResourcesServiceScopeQualifier;

@interface GetResourcesService : AbstractRESTServiceHandler {
 @private
    Resource *currentResource_;
    
    NSString *resource_;
    NSArray *metrics_;
    NSInteger depth_;
    GetResourcesServiceScope scopes_;
    GetResourcesServiceScopeQualifier qualifiers_;
    BOOL verbose_;
    NSUInteger limit_;
    BOOL includetrends_;
    BOOL includealerts_;
    BOOL rules_;
    BOOL rule_categories_;
    BOOL rule_priorities_;
}

@property (nonatomic, copy) NSString *resource;
@property (nonatomic, retain) NSArray *metrics;
@property (nonatomic, assign) NSInteger depth;
@property (nonatomic, assign) GetResourcesServiceScope scopes;
@property (nonatomic, assign) GetResourcesServiceScopeQualifier qualifiers;
@property (nonatomic, assign) BOOL verbose;
@property (nonatomic, assign) BOOL includetrends;
@property (nonatomic, assign) BOOL includealerts;
@property (nonatomic, assign) BOOL rules;
@property (nonatomic, assign) BOOL rule_categories;
@property (nonatomic, assign) BOOL rule_priorities;

@end
